f8cd959f9329bd847f8d2211ea1bc09ed4be428a,core/typesystemEngine/source/jetbrains/mps/newTypesystem/SubTypingManagerNew.java,SubTypingManagerNew,isSubTypeByReplacementRules,#SNode#SNode#boolean#,68

Before Change


  public boolean isSubTypeByReplacementRules(SNode subType, SNode superType, boolean isWeak) {
    LanguageScope languageScope = LanguageScopeFactory.getInstance().getLanguageScope(
      subType.getLanguage().getDependenciesManager().getAllExtendedLanguages(),
      superType.getLanguage().getDependenciesManager().getAllExtendedLanguages());
    try{
      LanguageScope.pushCurrent(languageScope, this);
      for (Pair<InequationReplacementRule_Runtime, IsApplicable2Status> rule : myTypeChecker.getRulesManager().getReplacementRules(subType, superType)) {

After Change


  public boolean isSubTypeByReplacementRules(final SNode subType, final SNode superType, final boolean isWeak) {
    return LanguageScopeExecutor.execWithTwoLanguageScope(
      subType != null ? subType.getLanguage() : null,
      superType != null ? superType.getLanguage() : null,
      new Computable<Boolean>() {
        @Override
        public Boolean compute() {